allow a port to be specified for migration.
authorvhanquez@kneesa.uk.xensource.com <vhanquez@kneesa.uk.xensource.com>
Thu, 8 Dec 2005 07:11:09 +0000 (07:11 +0000)
committervhanquez@kneesa.uk.xensource.com <vhanquez@kneesa.uk.xensource.com>
Thu, 8 Dec 2005 07:11:09 +0000 (07:11 +0000)
Signed-off-by: Vincent Hanquez <vincent@xensource.com>
tools/python/xen/xend/XendClient.py
tools/python/xen/xend/XendDomain.py
tools/python/xen/xend/server/SrvDomain.py
tools/python/xen/xm/migrate.py

index 7e1ec07140dee39c7212a99d66836d4322ed5755..4461304cdad061b2f308a51b4d1a0e723114f86c 100644 (file)
@@ -256,12 +256,13 @@ class Xend:
                              {'op'      : 'save',
                               'file'    : filename })
 
-    def xend_domain_migrate(self, id, dst, live=0, resource=0):
+    def xend_domain_migrate(self, id, dst, live=0, resource=0, port=0):
         return self.xendPost(self.domainurl(id),
                              {'op'         : 'migrate',
                               'destination': dst,
                               'live'       : live,
-                              'resource'   : resource })
+                              'resource'   : resource,
+                              'port'       : port })
 
     def xend_domain_pincpu(self, id, vcpu, cpumap):
         return self.xendPost(self.domainurl(id),
index c5510c8aad5ad39e1a61d3cedb967a9e062d3ca2..5971430ad9fd4ebb02da93cc339f48e4f533d060 100644 (file)
@@ -390,12 +390,13 @@ class XendDomain:
                 raise XendError(str(ex))
         return val       
 
-    def domain_migrate(self, domid, dst, live=False, resource=0):
+    def domain_migrate(self, domid, dst, live=False, resource=0, port=0):
         """Start domain migration."""
 
         dominfo = self.domain_lookup(domid)
 
-        port = xroot.get_xend_relocation_port()
+        if port == 0:
+            port = xroot.get_xend_relocation_port()
         try:
             sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
             sock.connect((dst, port))
index 9e8b2d216fc07d5f7bd309053cbd0c0f1713b11f..872a3f6bf48b06304e3a463caa706385256fed0b 100644 (file)
@@ -90,7 +90,8 @@ class SrvDomain(SrvDir):
                     [['dom',         'int'],
                      ['destination', 'str'],
                      ['live',        'int'],
-                     ['resource',    'int']])
+                     ['resource',    'int'],
+                     ['port',        'int']])
         return fn(req.args, {'dom': self.dom.domid})
 
     def op_pincpu(self, _, req):
index ec3d16bb468ffb20b53bf1153f9cd438189c806f..f36169ccf5fb599a58961a0a529a33f207d1c83f 100644 (file)
@@ -40,6 +40,10 @@ gopts.opt('live', short='l',
           fn=set_true, default=0,
           use="Use live migration.")
 
+gopts.opt('port', short='p',
+          fn=set_int, default=0,
+          use="Use specified port for migration.")
+
 gopts.opt('resource', short='r', val='MBIT',
           fn=set_int, default=0,
           use="Set level of resource usage for migration.")
@@ -60,5 +64,5 @@ def main(argv):
     dst = args[1]
     if dom in [DOM0_NAME, DOM0_ID]:
         opts.err('Cannot migrate ' + dom)
-    server.xend_domain_migrate(dom, dst, opts.vals.live, opts.vals.resource)
+    server.xend_domain_migrate(dom, dst, opts.vals.live, opts.vals.resource, opts.vals.port)